Next: Compiler error messages, Previous: Changing load-path, Up: Common requests [Contents][Index]
emacsclient, which comes with Emacs, is for
editing a file using an already running Emacs rather than
starting up a new Emacs. It does this by sending a request to the
already running Emacs, which must be expecting the request.
Emacs must have executed the server-start
function for ‘emacsclient’ to work.
This can be done either by a command line option:
emacs -f server-start
or by invoking server-start from
.emacs:
(if (some conditions are met) (server-start))
When this is done, Emacs creates a Unix domain socket
named server in
/tmp/emacsuserid. See
server-socket-dir.
To get your news reader, mail reader, etc., to invoke
‘emacsclient’, try setting the
environment variable EDITOR (or sometimes
VISUAL) to the value
‘emacsclient’. You may have to
specify the full pathname of the
‘emacsclient’ program instead.
Examples:
# csh commands: setenv EDITOR emacsclient # using full pathname setenv EDITOR /usr/local/emacs/etc/emacsclient # sh command: EDITOR=emacsclient ; export EDITOR
When ‘emacsclient’ is run, it
connects to the socket and passes its command line options to
Emacs, which at the next opportunity will visit the files
specified. (Line numbers can be specified just like with
Emacs.) The user will have to switch to the Emacs window by
hand. When the user is done editing a file, the user can type
C-x # (or M-x server-edit) to indicate
this. If there is another buffer requested by
emacsclient, Emacs will switch to it; otherwise
emacsclient will exit, signaling the calling
program to continue.
There is an alternative version of ‘emacsclient’ called ‘gnuserv’, written by Andy Norman (see Packages that do not come with Emacs). ‘gnuserv’ uses Internet domain sockets, so it can work across most network connections.
The most recent ‘gnuserv’ package is available at
Next: Compiler error messages, Previous: Changing load-path, Up: Common requests [Contents][Index]